/** Abstract class for various NN.
 *  
 * 
 * @author Yong Boon, Lim (yongboon.lim@gmail.com)
 */

package core;

public abstract class Core {
	public static boolean DEBUG = false;
	protected String _trainDataDir = null;
	protected String _nnDescShort = null;
	protected String _nnDescLong = null;
	
	// Constructor
	public Core(String trainDataDir) {
		_trainDataDir = trainDataDir;
	}
	
	// Instantiate all the data structure that will be used.
	public abstract void init();
	
	// Build NN structure
	public abstract void build();
	
	// Query and return the closest doc ID
	public abstract String query(String targetDataName);
	
	// Get Doc Description (Short)
	public String getDescShort() {
		return _nnDescShort;
	}
	
	// Get Doc Description (Long)
	public String getDescLong() {
		return _nnDescLong;
	}
	
	// Get ZDD Node sizes
	public abstract int size();
	
	// Clear all the objects
	public abstract void clear();

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
